import pandas as pda
import numpy as npy
import matplotlib.pylab as pyl
import wordcloud as wc
import jieba
from PIL import Image


#---------------------------------------------------------
# 0、exce数据导入
print(">>>>>>>>>>>>>>>>>Start，和讯博客数据导入......")
d_hexun = pda.read_excel("../2-data/和讯博客数据.xls")
print(">>>>>>>>>>>>>>>>>和讯博客数据导入完成！")
#---------------------------------------------------------



#---------------------------------------------------------
# 1、原始数据绘制：点击量 - 评论数散点图，判断异常数据
print(">>>>>>>>>>>>>>>>>1、原始数据绘制：点击量 - 评论数散点图，来判断异常数据......")
# 横坐标 - 点击量，纵坐标 - 评论数
x = d_hexun["点击量"].tolist()
y = d_hexun["评论数"].tolist()
# 绘制点击量 - 评论数散点图
pyl.plot(x, y,"o")
pyl.xlabel(u"点击量", fontproperties='SimHei')
pyl.ylabel(u"评论数", fontproperties='SimHei')
pyl.title('和讯博客原始数据【点击量-评论数】散点图', fontproperties='SimHei')
pyl.show()     
#---------------------------------------------------------



#---------------------------------------------------------
# 2、异常数据过滤以及保存（遍历一次DataFrame：d_hexun）
print(">>>>>>>>>>>>>>>>>2、异常数据过滤以及保存......")
# 所有博文的点击量数组
x = (d_hexun[(d_hexun["点击量"]<=25000) & (d_hexun["评论数"]<=250) ])["点击量"].tolist()
# 所有博文的评论数组
y = (d_hexun[(d_hexun["点击量"]<=25000) & (d_hexun["评论数"]<=250) ])["评论数"].tolist()

pyl.plot(x, y,"o")
pyl.xlabel(u"点击量", fontproperties='SimHei')
pyl.ylabel(u"评论数", fontproperties='SimHei')
pyl.title('和讯博客【点击量(>25000)-评论数(>250)】散点图', fontproperties='SimHei')
pyl.show()
#---------------------------------------------------------



#---------------------------------------------------------
# 3、异常数据的保存
print(">>>>>>>>>>>>>>>>>3、提取并且保存异常数据信息......")
error = d_hexun[(d_hexun["点击量"]>25000) | (d_hexun["评论数"]>250) ]
with pda.ExcelWriter('./异常数据.xls') as writer:
    error.to_excel(writer,sheet_name = "异常数据")

#---------------------------------------------------------



#---------------------------------------------------------
# 4、使用所有的标题创建词云图
print(">>>>>>>>>>>>>>>>>4、使用所有的标题创建词云图......")
# 存储所有的标题，为作词云图使用
all_title = d_hexun["标题"].tolist()
# 数据转换，保证所有的数据都是str，里面可能有几个int
all_title = npy.array(all_title).astype(str)
tite_content = "".join(all_title)
cutdata = jieba.cut(tite_content)
alldata = ""
for i in cutdata:
    alldata += " " + str(i)
font = "./YaHei - Kelvin.ttf"
mywc = wc.WordCloud(
    collocations=False,
    font_path=font,
    background_color="white"
    ).generate(alldata)
pyl.imshow(mywc)
pyl.title('和讯博客【标题】词云图', fontproperties='SimHei')
pyl.show() 

#---------------------------------------------------------
# 5、和讯博客评论数直方图与简要分析
print(">>>>>>>>>>>>>>>>>5、和讯博客评论数直方图与简要分析......")
pyl.hist(y)
pyl.xlabel(u"评论数量", fontproperties='SimHei')
pyl.ylabel(u"博文数量", fontproperties='SimHei')
pyl.title('和讯博客【评论数】直方图与简要分析', fontproperties='SimHei')
pyl.show()

#---------------------------------------------------------
# 6、和讯博客点击数直方图与简要分析
print(">>>>>>>>>>>>>>>>>6、和讯博客点击数直方图与简要分析......")
pyl.hist(x)
pyl.xlabel(u"点击数量", fontproperties='SimHei')
pyl.ylabel(u"博文数量", fontproperties='SimHei')
pyl.title('和讯博客【点击量】直方图与简要分析', fontproperties='SimHei')
pyl.show()




















